MPSGE simplifies the modeling process by separation the tasks of model formulation and model solution.  The installation program gives you a choice regarding which solver you wish to use for various problem classes. The key choice is the MCP or MIP solver for MPSGE models. MPSGE model specification is always listed between $ONTEXT and $OFFTEXT statements.

 

Steps in writing MPSGE model:

 

1.      $ONTEXT statement begins a model description

2.      The next statement assigns a name to the model. The model name must begin with a letter and must have up to 10 characters: $MODEL:xxxxxxxxx

3.      The model specification begins by declaring variables for the model. In a standard model there are three types of variables: commodity prices, sectoral activity levels, and consumer incomes. The end of each line may include “! VARIABLE DESCROPTION”.

4.      Function specification follow the variable declaration: syntaxes “I:” and “O:” denote an input and an output respectively, “Q:” – quantity, “E:” – endowment, “D:” – demand, “s:” – elasticity of substitution.

5.      $OFFTEXT statement finishes the model description. 

6.      The preprocessor invocation “$SYSINCLUDE MPSGESET model name”  should be place immediately after the $OFFTEXT statement.

7.      The model generator code “model name.GEN” is produced by the previous statement and should follow by $INCLUDE statement.

8.      It is common practice to address the normalization issue through the specification of a numeraire commodity. You can do it for an MPSGE model by fixing a price using statement “xx.FX=1”. When any price or income level is fixed, MPSGE recognizes that a numeraire has been specified and does no automatic normalization.

9.      Solve statement: “SOLVE model name USING solver type”.

After running the solver, we examine the listing file. Begin your assessment of a model’s solution by looking on SOLVER STATUS and MODEL STATUS. When the solver status is 1 and the model status is 1, the system has found an equilibrium. The final sentence in the Solve Summary (“Default price normalization using xxxxxxx for xxxx”)  reminds that an Arrow-Debreu general equilibrium model determines only relative prices.

 

***********************************************************************************************

Example 1: Consumer optimization problem

 

Representative Agent maximize its utility

U(x,y)=xy2 – utility function for the representative consumer

x, y – two goods

X,Y – two production sectors, each of them has one input (L) and one output (x or y)

L=120 – single factor of production

One production function converts one unit of labor into one unit of x, the other converts 2 units of labor into one unit of y:

x+2y=120

 

max U(x,y)=ln(x)+2ln(y) s.t. x+2y=120

 

Please select the utility calibration point at x=y=1 as the reference quantity. The demand entries are consistent here with a Cobb-Douglas utility function in which the budget share for y is twice the budget share for x, i.e. the MRS at (1,1) equals ½.

***********************************************************************************************

 

 

A utility function is represented in MPSGE by the specification of:

-         benchmark demand quantities (they determine an initial point for the set of indifference curves)

-         benchmark demand prices (they fix the slope of the indifferent curve at the initial point)

-         an elasticity of substitution at the benchmark point (it describes the curvature of the utility function)

 

Please note:               (i) The variable associated with commodities are prices, not quantities.

                             (ii) The variable associated with a consumer is an income level, not a welfare index.

                             (iii) The utility function calibration point is arbitrary.